package cn.yanhu.kuwanapp.welfare.ad.csj

import android.content.Context
import cn.yanhu.kuwanapp.http.UrlConstainer
import cn.yanhu.kuwanapp.utils.Config
import com.bytedance.sdk.openadsdk.TTAdConfig
import com.bytedance.sdk.openadsdk.TTAdConstant
import com.bytedance.sdk.openadsdk.TTAdManager
import com.bytedance.sdk.openadsdk.TTAdSdk

/**
 * 可以用一个单例来保存TTAdManager实例，在需要初始化sdk的时候调用
 */
object TTAdManagerHolder {
    private const val TAG = "TTAdManagerHolder"
    private var sInit = false
    fun get(): TTAdManager {
        if (!sInit) {
            throw RuntimeException("TTAdSdk is not init, please check.")
        }
        return TTAdSdk.getAdManager()
    }

    fun init(context: Context) {
        doInit(context)
    }


    private fun doInit(context: Context) {
        if (!sInit) {
            TTAdSdk.init(context, buildConfig())
            sInit = true
        }
    }

    private fun buildConfig(): TTAdConfig {
        return TTAdConfig.Builder().appId(Config.CSJ_APP_ID)
            .useTextureView(true) //使用TextureView控件播放视频,默认为SurfaceView,当有SurfaceView冲突的场景，可以使用TextureView
            .allowShowNotify(true) //是否允许sdk展示通知栏提示
            .debug(UrlConstainer.SHOW_LOG) //测试阶段打开，可以通过日志排查问题，上线时去除该调用
            .directDownloadNetworkType(TTAdConstant.NETWORK_STATE_WIFI, TTAdConstant.NETWORK_STATE_3G, TTAdConstant.NETWORK_STATE_4G) //允许直接下载的网络状态集合
            .needClearTaskReset()
            .build()
    }
}